'''
多线程：
多线程是指在同一时间内，同时运行多个线程。每个线程都共享进程的内存空间和系统资源，它们可以独立地运行。
多线程的优点：
1，线程之间共享进程的资源，因此创建和销毁线程的开销较小。
2，线程之间的通信较为简单，因为共享内存。
3，线程之间的切换开销较小，因为共享内存。
多线程的缺点：
1，线程之间共享进程的资源，因此一个线程的崩溃可能会影响整个进程。
2，线程之间的共享资源较为复杂，需要使用锁机制来避免竞争条件。
3，线程之间的同步机制较为复杂，需要使用锁机制来避免竞争条件。
'''
import threading
import time


def worker_with_args(i):
    time.sleep(1)
    print(f"线程 {threading.current_thread().name} 打印: {i}")

def worker_without_args():
    time.sleep(1)
    print(f"线程 {threading.current_thread().name} 打印: {i}")

if __name__ == '__main__':
    threads = []
    # for i in range(10):
    #     # 创建线程并指定名字
    #     t = threading.Thread(target=worker_with_args, args=(i,), name=f"线程{i}")
    #     t.start()
    #     threads.append(t)
    #
    #     t2 = threading.Thread(target=worker_without_args, name=f"线程{i}")
    #     t2.start()
    #     threads.append(t2)

    threads = [threading.Thread(target=worker_with_args, args=(i,), name=f"线程{i}") for i in range(10)]
    for t in threads:
        t.start()

    # 等待所有子线程完成
    for t in threads:
        t.join()

    print("全部子线程任务已完成，主线程结束")


